#ifndef DependencyInstance_H
#define DependencyInstance_H
#include"FeatureVector.h"
#include"ObjectReader.h"
#include"ObjectWriter.h"
#include<vector>
#include<string>
#include"RelationalFeature.h"
using namespace std;

class DependencyInstance{
private:
	void init();
	
public:
	FeatureVector* fv;
	string* actParserTree;
	vector<string*>* forms;
	vector<string*>* lemmas;
	vector<string*>* cpostags;
	vector<string*>* postags;
	vector<vector<string*>*>* feats;
	vector<int>* heads;
	vector<string*>* deprels;
	vector<RelationalFeature*>* relFeats;
	DependencyInstance();
	DependencyInstance(vector<string*>* forms, vector<string*>* postags,
		vector<string*>* labs, vector<int>* heads);
	DependencyInstance(vector<string*>* forms, vector<string*>* lemmas,
		vector<string*>* cpostags, vector<string*>* postags, vector<string*>* labs,
		vector<vector<string*>*>* feats, vector<int>* heads);
	DependencyInstance(vector<string*>* forms, vector<string*>* lemmas,
		vector<string*>* cpostags, vector<string*>* postags, vector<string*>* labs,
		vector<vector<string*>*>* feats, vector<int>* heads, vector<RelationalFeature*>* relFeats);
	~DependencyInstance();
	void setFeatureVector(FeatureVector* fv);
	int length();
	string* toString();
	void writeObject(ObjectWriter &out);
	void readObject(ObjectReader &in);

};
#endif
